Graphics Execution Manager
Graphics Execution Manager, ou GEM, est un gestionnaire de mémoire pour processeurs graphiques inclus dans le noyau Linux. Il est conçu pour décharger les pilotes graphiques de cette tâche.
GEM a été développé initialement pour les architectures Intel (qui ont la particularité d'avoir une mémoire partagée) par deux ingénieurs de la société : Keith Packard et Eric Anholt[1]. Les pilotes des principales architectures graphiques (Intel, mais aussi AMD et NVIDIA) ont ensuite été adaptés pour en tirer profit.
Intégrer le gestionnaire de mémoire au noyau Linux était un prérequis à la gestion des modes d'affichage par le noyau (kernel-based mode-setting).
GEM est également conçu pour être compatible avec les noyaux BSD.
Histoire
[modifier | modifier le code]GEM a été présenté par Intel en comme une alternative au gestionnaire de mémoire graphique Translation Table Maps (TTM) développé par la société Tungsten Graphics (rachetée par VMware en ) et qui était alors pressenti par la plupart des développeurs de X.Org pour intégrer le noyau Linux[2].
L’inclusion de GEM dans le noyau Linux à partir de sa version 2.6.28 sortie en semble donner raison à Intel.
Comme résultat de cette hésitation première, les pilotes libres pour processeurs AMD et NVIDIA adoptent un fonctionnement mixte. Ces derniers utilisent en interne un gestionnaire graphique équivalent à TTM tout en s'appuyant sur l'interface de programmation de GEM pour communiquer avec le reste du système graphique[3].
La version 2.6.31 du noyau Linux intègre les composantes nécessaires pour permettre aux cartes ATI Radeon de bénéficier de ces avancées[4]. À partir de Linux 3.12, TTM accède à la mémoire par GEM, la solution devient commune.
Suivront les architectures NVIDIA avec le projet Nouveau, et VIA avec le projet OpenChrome emmené par la société Tungsten Graphics.
Notes et références
[modifier | modifier le code]- (en) L'annonce de GEM par Keith Packard sur la liste de diffusion des développeurs de DRI le
- (en) "Great Linux Innovations Of 2008" par Michael Larabel, Phoronix,
- (en) "A GEM-ified TTM Manager For Radeon" par Michael Larabel, Phoronix,
- (en) "Linux 2.6.31-rc1 Kernel Released" par Michael Larabel, Phoronix,
Voir aussi
[modifier | modifier le code]Article connexe
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (en) "GEM update" par Keith Packard,
- (en) "i915/GEM Crashcourse " par Daniel Vetter,